In a client-server architecture, a client machine submits data requests to a server system over a communications network. In response to receiving a request, the server locates target data stored on a storage system and transfers a copy of the data from the server to the client, where the data is processed by a computing processor unit (CPU) on the client.
In some cases the result of data processing performed on a client node is returned to the server to update the storage system records. The above data transfer regiment can result in the generation of a substantial amount of network traffic and congestion, if large volumes of data are being transferred between the clients and the servers.
Advanced storage systems have been developed with locally available computing resources (e.g., CPU, memory, etc.). The storage-side local resources may not be fully utilized at all times. To help reduce network congestion, it is desirable to utilize these resources to process data that would otherwise be transferred to a client node for processing.